import java.awt.*;

public class MyFish {
    // 定义我方鱼的图像，默认为向左游动的图像
    Image img = GameUtils.MyFishimg_L;

    // 定义我方鱼的初始坐标
    int x = 700;
    int y = 500;

    // 定义我方鱼的宽度和高度
    int width = 50;
    int height = 50;

    // 定义我方鱼的移动速度
    int speed = 30;

    // 定义我方鱼的等级
    int level = 1;

    /**
     * 处理我方鱼的移动逻辑。
     */
    void logic() {
        // 如果按下上方向键且我方鱼未到达窗口上边界，则向上移动
        if (GameUtils.UP && y > 0) {
            y -= speed;
        }
        // 如果按下下方向键且我方鱼未到达窗口下边界，则向下移动
        if (GameUtils.DOWN && y < GameWin.height - height) {
            y += speed;
        }
        // 如果按下左方向键且我方鱼未到达窗口左边界，则向左移动，并更新图像为向左游动
        if (GameUtils.LEFT && x > 0) {
            x -= speed;
            img = GameUtils.MyFishimg_L;
        }
        // 如果按下右方向键且我方鱼未到达窗口右边界，则向右移动，并更新图像为向右游动
        if (GameUtils.RIGHT && x < GameWin.width - width) {
            x += speed;
            img = GameUtils.MyFishimg_R;
        }
    }

    /**
     * 绘制我方鱼。
     * @param g Graphics对象，用于绘制图形和图像。
     */
    public void paintSelf(Graphics g) {
        logic(); // 调用logic方法更新我方鱼的位置
        // 绘制我方鱼的图像，考虑GameUtils.count影响的宽度和高度
        g.drawImage(img, x, y, width + GameUtils.count, height + GameUtils.count, null);
    }

    /**
     * 获取我方鱼的矩形区域，用于碰撞检测。
     * @return 包含我方鱼位置和尺寸的Rectangle对象。
     */
    public Rectangle getRec() {
        // 返回包含我方鱼位置和尺寸的Rectangle对象，考虑GameUtils.count影响的宽度和高度
        return new Rectangle(x, y, width + GameUtils.count, height + GameUtils.count);
    }
}